Electronic documents can be large and costly to parse, process, and index, due in part to the quantity of information used to substantiate and track aspects of each electronic document. Partial update support refers to an ability to update parts of an indexed document without having to send in the entire document content, including all meta-properties, to the search engine. Supporting partial updates is difficult for a search service due in part to having to split documents into inverted indexes sorted by words, wherein each word references a list of documents containing the word.
Words from multiple document properties are typically bundled in the same indexing structures, wherein multiple indexing fields are handled as combined entities. Extracting original documents and making minor modifications to some properties in such structures can be costly and too time consuming in practice. Therefore, in practice, indexes are often made immutable, and new versions of complete documents are created in new index fragments while the old document versions in the old index fragments are marked as invalid using a mechanism sometimes referred to as exclusion-listing.
Re-indexing a complete document is costly and inefficient when only a minor change is needed. Incremental indexing is typically necessary for any search services where content is steadily updated or growing over time. If indexes are not merged on an ongoing basis, query performance suffers due in part to the large numbers of index partitions. Even though supporting partial updates can be costly and difficult, partial update support is typically needed since clients are not always capable of sending in every property of a document when wanting to make an update.